The present invention relates generally to computers, and more specifically, to reducing the footprint of core files in storage constrained environments.
A core file is a file that contains a memory image of a process. Many operating systems have the capability of saving a core file when an application abends. The core file is an important part of diagnosing a cause of the abend, since the data which the application was accessing at the time is in the core file, along with information about which part of the application was running at the time of the abend.
In environments where process memory space usage exceeds the amount of storage space or transmission bandwidth, storing a complete image of the memory is not practical. Examples of these environments include 64 bit processes using terabytes (TBs) of data in random access memory (RAM), mobile devices, embedded devices, and large cache based systems. Mobile and embedded devices connect to servers over a network, and when an error occurs the device needs to get the core information and hence the core files to the server quickly in case the error degrades or eliminates the network connection. Large cache based systems include mobile networks where large amounts of data are cached at the network edge, but there is little storage available and a limited amount of bandwidth. One approach is to compress the resultant core file and this can save some space but may be costly in terms of processing time. Another solution is to omit areas of the address space, but this has the downside of possibly leaving out memory that is needed.